from flask import Flask
from flask import request, render_template

app = Flask('hiflask')
@app.route('/hi', methods=['GET','POST'])
def hi():
    # 使用request请求对象，获取请求方法
    from flask import request

    # 获取平台参数：platform
    # 只支持Android手机访问
    platform = request.args.get('platform','pc')
    if platform.lower() != 'android':
        return """
            <h2>目前只支持Android设备</h2>
        """


    if request.method == 'GET':
        return """
        <h1>用户登录页面</h1>
        <form action="/hi?platform=android" method="post">
            <input name="name" placeholder="用户名"/><br>
            <input name="pwd"  placeholder="口令"/><br>
            <button>提交</button>
        </form>
        """
    else:
        # 获取表单的参数
        name = request.form.get('name')
        pwd = request.form.get('pwd')

        if all((
            name.strip() == 'disen',
            pwd.strip() == '987'
        )):
            return """
                <h2 style="color:blue;">登录成功</h2>  
            """
        else:
            return """
                <h2 style="color:orange;">登录失败,<a href="/hi"></a></h2>
            """

@app.route('/bank', methods=['GET', 'POST'])
def addBank():
    # 加载数据（Model 交互操作）
    data = {
        'title':'绑定银行卡',
        'error_message': ''
    }
    if request.method == 'POST':

        # 处理POST请求
        # 获取表单参数
        name = request.form.get('name', None)
        card_num = request.form.get('card_num',None)
        if all((name,card_num)):
            #  使用flask中的日志记录器（名称为当前脚本名称）
            app.logger.info('name:%s->card:%s' % (name,card_num))
            return """
                <h2>绑定银行卡成功</h2>
                <h4 id="result"></h4>
                <script> 
                    let steps = 5
                    let interval_id = 0 
                    setInterval(() => {
                        if(steps > 0){
                            // 设置5秒后跳转到别的页面
                            document.getElementById('result').innerText="剩余秒数：" + --steps + "秒"
                        }else{
                            // 取消定时器
                            clearInterval(interval_id)
                            // 跳转
                            window.open('/hi',target='_self')
                        } 
                    },1000)                 
                </script>
            """

        data['error_message'] = '银行名称或账号不能为空'

    # 渲染模板
    # bank_edit.html是一个动态的模板文件而不是静态资源，因为页面里面存在动态显示的变量。
    #  需要在视图函数中，指定数据渲染模板，渲染之后的HTML内容才是静态资源
    return render_template('bank_edit.html', **data)


# debug=True 代码有变化会进行重启
app.run('localhost',
        5000,
        True, # 默认未开启调试模式debug
        threaded=True,# 默认是单线程，即False
        processes=1)  #  默认只有一个进程